package com.wswy.wzcx.api.transform;

import android.support.v4.util.SparseArrayCompat;
import android.text.TextUtils;
import android.util.Log;
import com.che.libcommon.utils.optional.Optional;
import com.wswy.wzcx.api.ListResult.ListData;
import com.wswy.wzcx.model.BookMode;
import com.wswy.wzcx.model.GenreChild;
import com.wswy.wzcx.model.GenreWare;
import io.reactivex.functions.Function;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

//public class BookListTransform implements Function<Optional<ListData<GenreChild>>, Optional<BookMode>> {
//
//  private static final String TAG = "BookListTransform";
//
//  @Override
//  public Optional<BookMode> apply(Optional<ListData<GenreChild>> listOptional) throws Exception {
//    ListData<GenreChild> genreChildListData = listOptional.orNull();
//    if(genreChildListData == null){
//      return Optional.absent();
//    }
//
//    List<GenreChild> genreChildren = genreChildListData.list;
//
//    if(genreChildren != null){
//      //计算金额
//
//      //分组
//      SparseArrayCompat<SparseArrayCompat<GenreWare>> data = new SparseArrayCompat<>();
//      for (GenreChild genreChild : genreChildren) {
//
//        SparseArrayCompat<GenreWare> yearGenreWare = data.get(genreChild.year);
//        if(yearGenreWare == null){
//          yearGenreWare = new SparseArrayCompat<>();
//
//          data.put(genreChild.year,yearGenreWare);
//
//        }
//
//        GenreWare genreWare = yearGenreWare.get(genreChild.month);
//
//        if(genreWare == null){
//          genreWare = new GenreWare();
//          genreWare.year = genreChild.year;
//          genreWare.month = genreChild.month;
//          genreWare.childs = new ArrayList<>();
//
//          yearGenreWare.put(genreChild.month,genreWare);
//        }
//
//        //累加每月金额
//        try {
//          genreWare.monthAmount=genreWare.monthAmount.add(new BigDecimal(genreChild.content));
//          genreWare.childs.add(genreChild);
//        } catch (Exception e) {
//          e.printStackTrace();
//        }
//      }
//
//      //计算
//      int yearSize = data.size();
//
//      BookMode bookMode = new BookMode();
//      bookMode.list = new ArrayList<>();
//
//      //获取当月支出
//      Calendar calendar = Calendar.getInstance();
//      int currY = calendar.get(Calendar.YEAR);
//      int currM =calendar.get(Calendar.MONTH)+1;
//
//      SparseArrayCompat<GenreWare> currYGenreWare = data.get(currY);
//      if(currYGenreWare != null){
//        GenreWare currMGenreWare = currYGenreWare.get(currM);
//        if(currMGenreWare != null){
//          bookMode.currentMonthAmount = currMGenreWare.monthAmount.toString();
//        }
//      }
//
//      if(TextUtils.isEmpty(bookMode.currentMonthAmount)){
//        bookMode.currentMonthAmount = "0.00";
//      }
//
//      //排序
//      for (int i = yearSize-1; i >=0; i--) {
//        SparseArrayCompat<GenreWare> yearGenreWareSparseArray = data
//            .valueAt(i);
//
//        int monthSize = yearGenreWareSparseArray.size();
//
//        for (int j = monthSize; j>=0; j--) {
//          GenreWare genreWare = yearGenreWareSparseArray.valueAt(j);
//          if(genreWare != null){
//            bookMode.list.add(genreWare);
//          }
//        }
//      }
//
//      return Optional.of(bookMode);
//    }
//    return Optional.absent();
//  }
//}
